// MDX 环境变量替换插件
// 这个插件专门处理 MDX 文件中的环境变量替换

function mdxEnvReplacementPlugin(context, options) {
  return {
    name: 'mdx-env-replacement-plugin',

    // 使用 Docusaurus 的 MDX 处理钩子
    configureWebpack(config, isServer, utils) {
      // 查找现有的 MDX 规则并修改
      const mdxRule = config.module.rules.find(rule => {
        return rule.test && rule.test.toString().includes('mdx');
      });

      if (mdxRule && mdxRule.use) {
        // 在 MDX 处理之前添加环境变量替换
        const originalUse = Array.isArray(mdxRule.use) ? mdxRule.use : [mdxRule.use];
        
        mdxRule.use = [
          ...originalUse,
          {
            loader: require.resolve('./env-replacement-loader.js'),
            options: {
              replacements: {
                SITE_URL: process.env.DOCS_SITE_URL,
              },
            },
          },
        ];
      }
    },
  };
}

module.exports = mdxEnvReplacementPlugin;
